package com.egoo.ticket.server.service;


import com.egoo.ticket.server.pojo.entity.EwsUser;
import com.egoo.ticket.server.pojo.entity.EwsUserRole;
import com.egoo.ticket.server.pojo.vo.InteractiveDataVo;
import com.egoo.ticket.server.utils.common.DbResponse;

import java.util.List;
import java.util.Map;

/**
 * @author：victor_tang
 * @Date ：2020/2/16
 * @Description：系统用户管理接口
 */
public interface UserService {
	/**
	 * TODO 根据不同条件获取用户下拉label/value 列表
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:40
	 * @param searchMap 1
	 * @return: java.utils.List<com.egoo.ews.service.vo.InteractiveData>
	 */
	List<InteractiveDataVo> getInteractiveUsers(Map<String, Object> searchMap);
	/**
	 * TODO 根据不同条件获取用户列表
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:40
	 * @param searchMap 1
	 * @return: java.utils.List<com.egoo.ews.service.vo.EwsUser>
	 */
	List<EwsUser> getAllUserList(Map<String, Object> searchMap);
	/**
	 * TODO 根据用户id查询用户信息
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:41
	 * @param id 1
	 * @return: com.egoo.ews.service.vo.EwsUser
	 */
	EwsUser selectById(String id);

	/**
	 * TODO 根据用户id查询用户信息
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:41
	 * @param id 1
	 * @return: com.egoo.ews.service.vo.EwsUser
	 */
	String selectNameById(String id);
	/**
	 * TODO 批量更新用户数据和用户角色关系数据
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:41
	 * @param ewsUserList 1
	 * @param ewsUserRoleList 2
	 * @return: java.lang.Long
	 */
	Long addUserBatch(List<EwsUser> ewsUserList, List<EwsUserRole> ewsUserRoleList);
	/**
	 * TODO 根据角色信息查询用户列表
	 * @author: victor_tang
	 * @createtime: 2020/2/4 11:42
	 * @param searchMap 1
	 * @return: com.egoo.ews.service.utils.DBResponse
	 */
	DbResponse getAllUserListByRoleInfo(Map<String, Object> searchMap);

	/**
	 * TODO 根据工单类型节点id获取坐席列表
	 * @param workOrderTypeNodeId
	 * @param tenantId
	 * @return
	 */
	DbResponse getUserListByWorkOrderTypeNodeId(String workOrderTypeNodeId, String tenantId);

	/**
	 * TODO 根据用户ids获取用户名称组合
	 * @param userIds
	 * @param tenantId
	 * @return
	 */
	String getNamesByUserIds(List<String> userIds, String tenantId);

	/**
	 * TODO:根绝类型（dept部门role角色user用户）和类型ids获取用户列表
	 * @param type
	 * @param typeIds
	 * @param tenantId
	 * @return
	 */
	List<EwsUser> getUserListByTypeAndTypeIds(String type, List<String> typeIds, String tenantId);
}
